package mylab.starters.oss;

import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import mylab.utils.common.StrUtil;

/**
 * <p>
 * 对象存储规则
 * </p>
 */
public interface OssRule {
    /**
     * 生成存储桶名称规则，默认传入的存储桶名称
     *
     * @param bucketName 存储桶名称
     * @return 存储桶名称
     */
    default String bucketName(String bucketName) {
        return bucketName;
    }

    /**
     * 生成文件名规则，默认 "upload/2019-12-31/5e9ec298963a4eef8c59d379d02e8a70.png"
     *
     * @param originalFilename 文件名
     * @return 文件名
     */
    default String fileName(String originalFilename) {
        return "upload" + StrUtil.SLASH + DateUtil.today() + StrUtil.SLASH + IdUtil.fastSimpleUUID() + StrUtil.DOT + StrUtil.fileExt(originalFilename);
    }
}
